package sv.com.compassion.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Clase para los casting de los valores fechas.
 * @author grupo de Tesis
 */
public class Fecha {
    /**
     * @param date de tipo String
     * @return un objeto tipo Date.
     * @throws ParseException 
     */
    public static Date string2Date(String date) throws ParseException{
        DateFormat dfm = new SimpleDateFormat(Constantes.FORMATO_FECHA1);
        return dfm.parse(date);
    }
    /**
     * @param date tipo String
     * @param formato que se desea hacer el casting i.g. "dd/MM/yyyy".
     * @return un objeto tipo Date.
     * @throws ParseException 
     */
    public static Date string2Date(String date,String formato) throws ParseException{
        DateFormat dfm = new SimpleDateFormat(formato);
        return dfm.parse(date);
    }
    /**
     * @param date tipo Date
     * @return la fecha en tipo String
     */
    public static String date2String(Date date){
        if(date != null){
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            SimpleDateFormat formatter = new SimpleDateFormat(Constantes.FORMATO_FECHA1);
            return formatter.format(cal.getTime());
        }else
            return null;
    }
    /**
     * @param date tipo Date.
     * @param formato tipo String es el formato al cual se desea hacer el casting i.g. "dd/MM/yyyy".
     * @return la fecha convertida en String.
     */
    public static String date2String(Date date,String formato){
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        SimpleDateFormat formatter = new SimpleDateFormat(formato);
        return formatter.format(cal.getTime());
    }
}
